/*
Package config
@Author   : Uyynot
@Email    : uyynot@qq.com
@Time     : 2024/1/29 17:00
@File     : log.go
@Project  : gohub
@Desc     :
*/
package config

import "gohub/pkg/config"

func init() {
	config.Add("log", func() map[string]any {
		return map[string]any{
			//日志级别，必须是以下选项：
			//"debug" - 信息量大，一般本地调试打开。系统模块详细运行的日志，例如 http请求、数据库请求、发送邮件、发送短信
			//"info" - 业务级别的运行日志，如用户登录、用户退出、订单撤销
			//"warn" - 感兴趣、需要引起关注的信息。例如，调试时候打印调试信息（命令行输出会有高亮）。
			//"error" - 记录错误信息。Panic或者Error。如数据库链接错误、http端口被占用等。一般生产环境使用该等级
			//以上级别从低到高，level值设置的级别越高，记录到日志的信息就越少
			//开发是推荐使用“debug”或者“info”，生产环境下使用“error”
			"level": config.Env("LOG_LEVEL", "debug"),
			//日志类型，可选：
			//"single" 独立的文件
			//"daily" 按照日期每日一个
			"type": config.Env("LOG_TYPE", "single"),

			//滚动日志配置
			//日志文件路径
			"filename": config.Env("LOG_NAME", "storage/logs/logs.log"),
			//每个日志文件保存的最大尺寸 单位：M
			"max_size": config.Env("LOG_MAX_SIZE", 64),
			//最多保存日志文件数，0为不限，MaxAge到了还是会删
			"max_backup": config.Env("LOG_MAX_BACKUP", 5),
			//最多保存多少天， 7 表示一周前的日志会被删除， 0 表示不删除
			"max_age": config.Env("LOG_MAX_AGE", 30),
			//是否压缩， 压缩日志不方便查看，暂设置为false(压缩可节省空间),
			"compress": config.Env("LOG_COMPRESS", false),
		}
	})
}
